package com.mashibing.bio.tomcat.http;

import java.io.IOException;
import java.io.InputStream;

/**
 * 理解HTTP报文格式
 * 请求行： GET /department/33/users HTTP/1.1
 *
 *
 *
 */
public class MyRequest {

    //请求方法  GET/POST
    private String requestMethod;
    //请求地址
    private String requestUrl;

    //对象怎么造出来，肯定要写构造方法的。 那输入参数来源自哪里，就是inputstream
    //这里面做的事就是 1、拿到请求报文的所有东西，是一个string  2、解析它，拿到自己想要的东西
    public MyRequest(InputStream inputStream) throws IOException {
        /**
         * 缓冲区域  这句话意思是 1kb 1kb的读取。  1kb就是一个缓冲区，而不是一个字节一个字节的读
         * 另外，单位科普：一个字节等于8位。1KB等于1024个字节。  所以顺序从小到大是：  位，字节（byte），kb ，M，G ，
         * 字节跳动 byte dance撒。
         * 位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数
         */
        byte[] buffer = new byte[1024];
        //读取数据的长度
        int len =0 ;
        //定义请求的变量
        String str = null;
        if( (len = inputStream.read(buffer)) > 0){
            str = new String(buffer,0,len);
        }

        // GET /department/33/users HTTP/1.1
        String data =  str.split("\n")[0];  //这里的参数从第一行的请求行 中拿就行了。。
        String[] params  = data.split(" ");
        this.requestMethod = params[0];
        this.requestUrl = params[1];
    }


    public String getRequestMethod() {
        return requestMethod;
    }

    public void setRequestMethod(String requestMethod) {
        this.requestMethod = requestMethod;
    }

    public String getRequestUrl() {
        return requestUrl;
    }

    public void setRequestUrl(String requestUrl) {
        this.requestUrl = requestUrl;
    }
}
